package com.mvvm.start.main.utils

import android.animation.TypeEvaluator
import android.graphics.Point

/**
 * @功能:
 * @User Lmy
 * @Creat 2021/11/5 2:09 下午
 * @Compony 永远相信美好的事情即将发生
 */
/**
 * 贝塞尔曲线（二阶抛物线）
 * controllPoint 是中间的转折点
 * startValue 是起始的位置
 * endValue 是结束的位置
 */
class BizierEvaluator2(private val controllPoint: Point) : TypeEvaluator<Point> {
    override fun evaluate(t: Float, startValue: Point, endValue: Point): Point {
        val x =
            ((1 - t) * (1 - t) * startValue.x + 2 * t * (1 - t) * controllPoint.x + t * t * endValue.x).toInt()
        val y =
            ((1 - t) * (1 - t) * startValue.y + 2 * t * (1 - t) * controllPoint.y + t * t * endValue.y).toInt()
        return Point(x, y)
    }
}